package main;
import java.util.Scanner;

public class StuManager {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 1. 定义一个可以存放3个学生的数组
        Student[] students = new Student[3];

        System.out.println("--- 请输入3名学生的信息 ---");

        // 2. 使用 for 循环，从控制台接收用户输入，创建3个Student对象并存入数组
        for (int i = 0; i < students.length; i++) {
            System.out.println("请输入第 " + (i + 1) + " 名学生的信息:");
            System.out.print("学号: ");
            String id = scanner.nextLine();

            System.out.print("姓名: ");
            String name = scanner.nextLine();

            System.out.print("年龄: ");
            int age = scanner.nextInt();
            scanner.nextLine(); // 消费掉换行符

            // 使用输入的信息创建一个新的Student对象，并放入数组
            // YOUR CODE HERE
            students[i] = new Student(id, name, age);
        }

        System.out.println("\n--- 所有学生信息如下 ---");
        // 3. 使用 for-each 循环遍历数组，打印出每个学生的信息
        //    (这里会隐式调用你重写的 toString() 方法)
        // YOUR CODE HERE
        for (Student stu : students) {
            System.out.println(stu);
        }


        // 4. (选做) 验证 equals 和 hashCode
        System.out.println("\n--- equals 和 hashCode 验证 ---");
        Student s1 = new Student("2024001", "张三", 20);
        Student s2 = new Student("2024001", "张小三", 21); // 学号相同，但其他信息不同
        System.out.println("s1.equals(s2) 的结果应该是 true: " + s1.equals(s2));
        System.out.println("s1.hashCode() == s2.hashCode() 的结果应该是 true: " + (s1.hashCode() == s2.hashCode()));

        scanner.close(); // 补充：关闭Scanner，避免资源泄漏
    }
}
